#include "validatormanager.h"

#include <QtGui/QValidator>

using namespace core;

ValidatorManager* validatorManager = 0;

ValidatorManager* ValidatorManager::getInstance()
{
    if (validatorManager == 0)
    {
        validatorManager = new ValidatorManager();
    }

    return validatorManager;
}

void ValidatorManager::destroy()
{
    delete validatorManager;
}

void ValidatorManager::registerValidator(const QString& name,
    const QSharedPointer<QValidator>& validator)
{
    if (!m_registeredValidators.contains(name))
    {
        m_registeredValidators[name] = validator;
    }
}

void ValidatorManager::unregisterValidator(const QString& name)
{
    if (m_registeredValidators.contains(name))
    {
        m_registeredValidators.remove(name);
    }
}

QSharedPointer<QValidator> ValidatorManager::getValidator(const QString& name)
{
    QSharedPointer<QValidator> ret;

    if (m_registeredValidators.contains(name))
    {
        ret = m_registeredValidators[name];
    }

    return ret;
}

ValidatorManager::ValidatorManager() :
    m_registeredValidators()
{

}

ValidatorManager::~ValidatorManager()
{

}
